#include "soc_adc.h"

void SOC_AdcInit()
{
	ADC_ConfigADCVref(ADC_VREF_2V);
    //设置ADC的运行模式
	ADC_ConfigRunMode(ADC_CLK_DIV_16, ADC_RESULT_LEFT);
	//设置ADC中断
	// ADC_EnableInt();
	// IRQ_SET_PRIORITY(IRQ_ADC,IRQ_PRIORITY_HIGH);	
	// IRQ_ALL_ENABLE();
}

void SOC_AdcStart(SOC_AdcNo_t no)
{
	//开启ADC
	ADC_Start();
}

void SOC_AdcStop(SOC_AdcNo_t no)
{
	ADC_Stop();
}

uint32_t SOC_AdcRead(SOC_AdcNo_t no)
{
	uint16_t res;

	//设置ADC转换通道
	ADC_EnableChannel(no);	
	ADC_GO();
	while (ADC_IS_BUSY);
	res = ADC_GetADCResult();

	return res;
}

float SOC_AdcReadFloat(SOC_AdcNo_t no)
{
    return (SOC_AdcRead(no) / 4096.0) * 3.3f;
}
